xenpaging: use flat index for pagefile and page-in requests
authorOlaf Hering <olaf@aepfle.de>
Mon, 20 Feb 2012 20:18:44 +0000 (21:18 +0100)
committerOlaf Hering <olaf@aepfle.de>
Mon, 20 Feb 2012 20:18:44 +0000 (21:18 +0100)
commit9245411c958f4c4a1e77e76b2e1fde699a56929e
tree3abb796d4b0b4df153d48518f1edb2a410ef3be7
parent057d014a288437fef4d58379f1aabcc59a99ea57
xenpaging: use flat index for pagefile and page-in requests

This change is based on an idea by <hongkaixing@huawei.com> and
<bicky.shi@huawei.com>.

Scanning the victims[] array is time consuming with a large number of
target pages. Replace the loop to find the slot in the pagefile which
holds the requested gfn with an index.

Remove the victims array and replace it with a flat array. This array
holds the gfn for a given slot in the pagefile. Adjust all users of the
victims array.

Rename variable in main() from i to slot to clearify the meaning.

Update xenpaging_evict_page() to pass a pointer to xen_pfn_t to
xc_map_foreign_pages().

Update policy_choose_victim() to return either a gfn or INVALID_MFN.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
tools/xenpaging/policy.h
tools/xenpaging/policy_default.c
tools/xenpaging/xenpaging.c
tools/xenpaging/xenpaging.h